SDK V7150 - September 2023
- Triangulation: performances have been improved
- Faster string conversion from ASCII to Unicode which lead to important performance improvements for all text file format (wavefront, stl...)
- C3DFace::Get2DCoordinates method change (now provide a CTriangulateFaceHelper instead of a geominfo)
- C3DBaseObject *C3DBaseObject::GetFinalObject add a new parameter to trigger final object generation or not
- C3DGeomObject::GetBoudingBox cache has been improved and is faster when you have different repeatly request
- C3DScene::GetMaterialByID method parameter has been changed
- C3DScene::GetMaterialByID can now create a material if missing
- C3DScene::GetMaterialByID2 now search for a specific material id with a specific class
- C3DScene::GetInstancesCount new method. It returns the number of instance of an object
- CMaterials::FindByID now adds a createIfMissing parameter. DEFAULT_MATERIAL_ID is only created when requiring it
- int CDependentChannels::GetChannels: can now filter channels using channel flags
- CChannel::SetFlags new method
- CStdioFileEx::ReadString: performance improvement (use of a single buffer without copy)
- Lightwave: handle better files which have improper chunks, allowing to support more files on reading
- - Fix: import / export does not take care of import / export default built-in settings, which might lead to improper results
- Fix: Sketchup: saving to sketchup format can lead to a crash on large scene graph
- Fix: C3DScene::CompensateTransform lead to a crash on large scene graph (improper recursion)
- Fix: Lightwave Scene does not handle properly reference when using hexa
- Fix: Lightwave Scene now correctly import material from the different scenes by reassigning id of material
- Fix: there might be conflict between 32 bits and 64 bits GUID
- Fix: CMaterials::GetMaterials with MATERIAL_CLASS_UNDEFINED
- Fix: C3DScene::GetLinkedFiles does not handle correctly the pathRelativeToScenePath parameter
- Fix: copying a curve leads to loose its material
- Fix: GetMaterialsHashMap now take care of curve material
SDK V7120 - August 2023
- Blender: support new compression format.
- GLTF: improves bitmap exportation capabilities (GLTF_EXPORT_JPEG_MODE)
- FBX: improves material conversion capabilities (FBX_EXPORT_CONVERT_MATERIAL_TO_STANDARD)
- MagicCruncher is now multithreaded when applying it is used on a single node
- bool C4x4Matrix::Decompose() / C4x4Matrix::Recompose() / C4x4Matrix::IsTrsDecomposable() improvements
- CFaceList::CollectIndexes new method to collect the face indexes to an hash table
- const C3DEdgeArray *CFaceList::InitEdgeArray() / void CFaceList::DeleteEdgeArray() new methods to get edge list for the face list
- C3DScene::CreateBackFaceNodes looses the UV channel for backface when using BACKFACE_DEFAULT
- C3DScene::CreateBackFaceNodes crash when using BACKFACE_DEFAULT and scene has curve
- C3DScene::UnifyNormals don't handle the specified normal channels
- C3DTBBox : min and max are now accessible through GetMin() and GetMax() and can be set using SetMinMax()
- C3DTBBox : mix type conversions (C3DTBBox, C3DTBBox, C3DTBBox)
- C3DScene::GetChilds new method
- C3DScene::ConvertToGlobalCoordinates now adds includeNodeItself setting
- C3DMaterial::AdjustMaterial does not remove any more the diffuse color, when no diffuse map is available and MATERIAL_DISABLE_DIFFUSE_MODULATION set
- CRGBColor::Interpolate method has been added
- C3DSceneNode::SetObjectLocalTM can now use C3DKeyframable::INVALID_TIME to delete all keyframes
- C3DVector::IsUnit bug fix
- FBX: materials are not correctly converted. Fix diffuse color export when material is PBR
- C3DScene::GetMaterialByID bug if materialClass defined
- C3DScene::GetBoundingBox(const C3DNodeArray& nodes) does not return a valid value
- 3DKeyframable::CopyKeys bug fix
- Fix: there might be conflict between 32 bits and 64 bits GUID
SDK V7000 - January 2023
- Warning: please have a look to readme file about license validation.
- Materials: support PBR materials for several format (GLTF, FBX)
- 3DScene: new methods (ConvertFromUnit, PivotTransform, DetachAndAddNode, SetNodeObject)
- 3DSceneNode: new methods (SetObjectLocalTM, GetBoundingBox)
- 3DFaceList: new ray casting methods
- 3DPointList: new methods to get access to point by index (GetPointFlags, CheckPointFlags, IsPointOneFlagSet...)
- 3DVector: new methods (SelftMult, SelfDiv, Mult, Div, IsNormalized)
- 4x4Matrix: improvements simplifying float / double matrix conversion
- Blender: support new compression format.
- GLTF: support for GLTF_EXPORT_FORCE_JPEG_FORMAT
- SKP: support for geolocation information (longitude, latitude, altitude...)
- SKP: instance might be loose on export
- FBX: UV support improved, texture projection improved
- VRML: WRZ file support (Windows / Linux)
- MacOS: universal build support (x64 / ARM)
- Polygon Cruncher: crash might occurs on mesh that have some non triangular faces and when a texture channel is incomplete
- Polygon Cruncher: optimization might be extremely slow on weird geometry
SDK V6300 - May 2022
- Easier way to implement a custom 3D format. An example is shown through 3DCustomFormat project new sample
- Blender: crash might occurs when reading particular files.
- GLTF no longer add a root node to its scene graph when saving
- GetUVVertexFromUVFace helper is renamed GetOneUVPerVertex in 3DTools.h, and some explanations is provided on the way to use it.
SDK V6260 - February 20222
- Sketchup 2022 is now supported.
- VRML97 now import cameras.
- GLTF now import and export cameras.
- GLTF now support lines, lines strip, line loops.
- FBX: diffuse color does not modulate texture any more, use emissive instead ambiant when defined.
- C3DCurve now supports curve type
- New C3DTVector::Floor / C3DTVector::Ceil methods / C3DTVector::NegateCheckZeroSign / C3DTVector::InvertCheckZeroSign methods
- new C3DTBBox::RayIntersect method
- RayIntersectsTriangle / IsInTriangle new methods
- IoFile: IOFILE_THROW_EOF_EXCEPTION has been replaced by IOFILE_ALLOW_EXCEPTIONS to enable exception when reading / writing file
- CXFile can now define noException to prevent exception sending (has well as CSXtdioFile / CStdioFileEx / CXMemFile)
- Fix: curve bbox is incorrectly computed.
- Fix: GLTF mesh can be incorrectly oriented when the model uses TRS transformation.
- Fix: CXArray::PreAllocate bug fix. The initial element number is not set to 0
SDK V6200 - October 2021
- New: BatchOptimizer new class that help in optimization automation of file or folder.
- New: GLTF: support COMMON_IMPORT_FROM_MEMORY_DATA / COMMON_EXPORT_TO_MEMORY
- GLTF: correctly export texture for SDK (no URI was given) and embed texture if possible
- Sketchup: support COMMON_IMPORT_FROM_MEMORY_DATA
- Sketchup: fix UV set to infinity on when Sketchup provides invalid UVQ
- Fix: switching OPTIMIZE_KEEP_UV, OPTIMIZE_KEEP_VC, OPTIMIZE_KEEP_NORMALS does not correctly reinit UV, VC, Normals seams detection.
- Fix: fixing object / material / texture name limit when exporting might result in memory fault.
- Fix: application path case is now correctly kept on linux.
- Fix: add abs inline on linux to support abs for various type.
- Fix: assert on linux does not abort application, but displays some warning in the console.
SDK V6100 - July 2021
- New: improved GLTF support for import and export to reduce file size.
- New: update mode in GLTF to preserve advanced material properties and some animations.
- Improvement: FBX import/export support normal maps.
- Improvement: Wavefront import support normal maps.
SDK V6000 - April 2021
- New format supported: GLTF (read/write), Blender (read only)
- Cinema4D: update library. Cineware is now used.
- Sketchup: Sketchup 2021 support. Image entity and Live component support.
SKP_IMPORT_COLLAPSE_LIVECOMPONENT allows to concatenate or not live components
The setting SKP_IMPORT_FORCE_TEXTURE_FORMAT allows to force conversion to jpg or png.
Export might weld some points if scene is too small.
- FBX 2020.2 is now used.
- LXO: fix a problem when matrix is inverted.
- GuidMgr handles guid for scene element, making easier an update process.
- Polygon Cruncher handles symmetric UVs in a better way.
- MagicCruncher performance have been increased by 3.
- C3DScene::sort new method
- C3DScene::CompensateTransform new method that scale up point position and scale down matrix accordingly, so points coordinates are in a better range.
SDK V5560 - September 2020
- Sketchup : image entity support
- Sketchup : it's now possible to select a format for the texture bitmap through SKP_IMPORT_FORCE_TEXTURE_FORMAT
- MagicCruncher: avoid division by zero for face with nearly null area
SDK V5550 - May 2020
- Improve collapse by material (better collapse of channels)
- ChannelID assignation mechanism was improved
- Lightwave export improvments (clip export, channel assignation)
- C3DIo::Save, improve the way user options are taken into account, taken care of the parser constraints
For example, CSceneExportOptions can define a name limit and combine it with the parser requirements.
- Improve move texture mechanism When using SCENE_EXPORT_MOVE_TEXTURES_RENAME
- C3DIo::Save, improve the way user options are taken into account, taken care of the parser constraints
- Remove CChannel::Duplicate method. CChannel::Copy can be used instead
- Lightwave import fix a crash that occurs when several layers exists in a texture channel
- Sketchup export fix problems (missing uv, incorrect front / back face handling when the object is double sided)
SDK V5530 - January 2020
SDK V5520 - January 2020
- Correct a crash that occurs after reading Wavefront file
- xTDestroyArray crashes on NULL pointer
SDK V5510 - January 2020
- Concatenate optimization when there is a single node
- Concatenate by materials might mix front and back UVW channels
- Add SKETCHUP_TOP_GRAPH_REDUCTION mode to sketchup import
- Correct crash that occured when releasing application plugin data
- Correct C3DMaterial::GetDiffuseColor alpha value
SDK V5500 - December 2019
New features
- MagicCruncher new MAGICCRUNCHER_ULTRA mode, which is perfect for large & thin meshes
- Polygon Cruncher now handle material frontier for front & back materials
- C3DMaterial can now contains map which refers to a different front and back UV channel. This allows to display different front and back UV for a single face.
- Sketchup reduces the number of imported materials by 2.
- Sketchup format improvements (better material support and inheritance)
- Windows SDK DLL now specified their correct version number
- Update FBX SDK to FBX 2019.5
API Changes
- C3DScene::CleanGroups has been improved
- C3DGeomObject::Concatenate improvements has been improved and memory requirements has been reduced and speed increase.
- C3DGeomObject::CreateUVW generates to back channel when needed
- CChannel::Compare return true if two channels of the same type are identicals. A version has been implemented for CUVWChannel.
- bool C3DFaceList::HasDifferentFrontAndBackUVChannel checks if front and back UV are different or not
- CMaterials::IsGenerateUVWNeeded(MaterialID matid, MapType type) const new helper method that check if one of the material map has a maaping projection
- CMaterials::CreateMissingUVWBackChannels which complete the objet when back UV is missing
- C3DMaterial::GetUVWChannelID method to get the appropriate UVW channel to use for a specified object
- C3DMaterial::GetVCChannelID method to get the appropriate VC channel to use for a specified object
- C3DPointList::InitShareSeveralMaterialsFlag now take care of the back materials
- C3DPointList::MatrixTransform / C3DVectorList::MatrixTransform... now allows to specify an index range
- bool CDependentChannels::RemoveChannelsByFlag bug correction
- C3DSceneNode constructor can now specify its mesh.
- Sketchup : correct material inheritance bug
- CHashTable and CHashMap copy operator has been improved.
SDK V5460 - July 2019
- Polygon Cruncher algorithm: fix a problem with void faces (null area) which lead to invalid optimization results.
- Use FBX SDK 2019.2 (previous version was FBX 2018.1.1)
- C3DScene::ConcatenateByMaterial / C3DGeomObject::Concatenate: backface materials were removed when filter is not a material filter.
- C3DScene::AddNode now adds node at the beginning of a branch
- CFaceList::CreateEdgeToFaceGraph improvements
- CHashTable / CHashMap improvements lead to general better performance
- C3DPointList::CreatePointMaterialGraph: improved performance
- MacOS: improve xFileFind
Class changes
- CHashTable::Minimize now returns true or false
- CHashMap::Minimize now returns true or false
- CSimpleCollection::FreeExtra now return true or false
- CAssociationMap now offers a collector that ensures unicity of the associated values
- CAssociationCollector now uses GROW_DOUBLE_SIZE by default.
- CElementArray::operator = has been made private. Use Copy instead.
- CXArray::operator = is now private. Use Copy instead
- CXArray::PreAllocate now allows to define resize mode
- CXArray::SetSize(0) now keeps the allocated buffer unless GROW_DEFAULT is defined
- CXArray::RemoveAll is now able to keep the allocated buffer to allow reuse of the array
SDK V5410 - April 2019
- Collada: correct a crash that migh occur on particular files
- CloseMootoolsApplication might crash when concurrential accesses are done on the SDK.
SDK V5400 - March 2019
- SubObject : algorithm reduces the memory requirements and highly improves speed process
- DisconnectBorderFace : algorithm reduces the memory requirements
- Concatenate / Concatenate by materials : handle double side / smooth angle flags
- Wavefront: reading file with long line might fail.
- Fbx: layer texture partially supported
- Sketchup: fix always turn on triangulation
- Sketchup: improve material import
- Sketchup: multithread texture import
- Socket: create client nonblocking socket
SDK V5390 - February 2019
- Sketchup 2019 support
- Lightwave: faster processing of LWO2 files
- Fbx: fix double slash material path problem.
- C3DScene::SetFilename now adjust texture paths (turn it to relative if needed). Improve relative path support for texture at exportation.
SDK V5380 - October 2018
- C3DScene::ConcatenateByMaterials now take care of double side materials. Face that have the same front/back pair are concatenated togethers.
- C3DFaceList::GetMaterialsHashMap new signature. The map is now a parameter and the methods returns the number of material.
- C3DFaceList::GetBackFaceMaterial new signature. getFrontIfNeeded allows to returns the front material if no back material is defined.
- FBMaterialID is a material pair that reference a front and back material ID. FBMaterialID::IsSingleMaterial allows to know if the material is front/back sided, or single sided.
- C3DFaceList::GetFBMaterialsHashMap new method. It returns materials referenced by a 3d face list. If double side materials exists, the method can be use to identify the front/back material pair.
- C3DScene::GetFBMaterials new method. It returns the materials referenced in the scene. If double side materials exists, the method can be use to identify the front/back material pair.
- C3DConcatenateFilter is now able to filter face given a double side material.
- CFBMaterialHashMap: double sided material map. This class associated a paired material (front and back face material) to an integer.
- C3DMaterial::GetNextMap fix.
- CFace::Reset / CFace::IsEmpty new methods. These methods can be useful in a loop to tag a face as empty (no index, no data)
- CUVWPoint::operator- calculation error fix.
- CXFileFind changes. CXFileFind::IsFileAttributeSet has a new signature.
- Fix: CXString::Insert, CXString::Replace buffer overrun.
SDK V5370 - June 2018
- Fix in C3DScene::Concatenate (crash when C3DCurve belong to the scene)
- FBX: handle default UV set name case
- LWO2: take care of alpha clip
- C4D: was missing from MACOS SDK
SDK V5350 - May 2018
- C3DGeomObject::Concatenate implementation improvement, making it faster
- A default name is assigned when scene is imported / exported, and not any more in C3DSceneNode constructor
API changes
- C3DPointList::MatrixTransform / C3DVectorList::MatrixTransform / CChannel::MatrixTransform / CFaceList::FlipNormals can know be applied on selected points or faces.
- C3DMaterial::GetSpecularColor cannot be modulated any more by specular factor.
Fixes
- Missing solution file under Windows distrib.
- CSpecNormalChannel::GenerateNormals fix problem with enum duplicated value and bug.
- Windows: debug version link with FBX SDK 2017.1
SDK V5300 - March 2018
- Lightwave 2018 file format support
- FBX export can now export in ASCII format
- SKP import generates less material when possible
- Triangulate: improve performances
- Texture paths improvements when reading / saving (relative / absolute paths are better handled)
- Better support of file system separator depending on the platform
- C3DPoint / C3DVector performs computation on double when possible
- C3DScene::ChangeNodeParent, C3DSceneNode::SetFlags new methods
- C3DSceneNode cache matrix information for quicker computation
- C3DPatch now returns the object itself when patch level is set to 0
- CMultiresolution::FreezeObject bug correction. This bug makes the optimized object now being cleaned correctly in release 5000 and further.
- CXStdioFileEx now support UTF8 BOM
API changes
- C3DGeomObject::GetMaterialsHashMap() now returns a const hash map
- CTreeNode::Copy replaced by CTreeNode::CopyFrom
Dependent platform changes
- MacOS: now supporting parallel processing of mesh optimization (using OpenMP)
- MacOS, Linux : fix some problems related to file path support
- Linux: wavefront now included even when PolygonCruncherSDKWithoutIO is used
SDK V5100 - March 2018
- C3DKeyframe::operator= and derived now uses a more standard form (avoid C4458 & C4263 warnings).
- FBX: some UV textures are loosed when reading (bad channel number assignation), correct UV index (which was set to -1) when an object has incomplete UV.
- JT: concurrent reading crash fix.
- C4D: improve cubic mapping with MAPPROJ_CUBIC2.
- DXF: quadrangles were exported instead triangles. Now perform a default weld operation.
- Sketchup: upgrade to Sketchup 2018 SDK.
- New C3DConcatenateFilter derived from C3DFilter.
- C3DGeomObject::Concatenate sometime failed, depending on the provided object channels.
- C3DScene::Concatenate & C3DScene::ConcatenateByMaterials signature changes, and now support advanced callback through C3DConcatenateFilter.
- C3DScene::ConcatenateByMaterial failed if material is missing - FindBitmap does not return any name if the texture file is missing.
- C3DScene::GenerateUVW now reset transformation included in MaterialMap.
- CMaterialMap::FindBitmap did not return any name when texture file is missing.
- CMultiresolutionObject::Init incomplete initialization that can lead to an object lock.
- Change LoadString/GetWindowText methods by LoadResourceString / GetWindowString.
- CCustomData::GetArray was modified to avoid CCustomData::DeleteArray call (which has been removed).
- CXSingleLock can now attach a lock.
- CHashTable::CopyTo new method.
- CXString::MakeUpper() turned text to lowercase.
- Crash can occur in InitMootoolsApplication when log file is defined.
- CFileFind: Improve version for Linux and bug correction for MacOS (on MacOS High Sierra)
- XCW2A conversion error under Windows
SDK V5000 - November 2017
New features
- MagicCruncher does not requires any more metro.exe. MagicCruncher has been speed up by 6.
- GeomCompare new feature for measuring the difference between two meshes
- Weld points: improving vertex welding for meshes which are locally highly detailed.
- New C4DVector is template (C4VectorF / C4DVectorD)
- New C3DBBoxD / C3DBBoxF / C3DBBoxI classes
- New C3DPointI / C3DVectorI classes
- C3DScene::GetNodesByType new method
- C3DFaceList::GetClosestFace retrieve the closest face to a point
- C3DFaceList::GetDistanceToPlane to retrieve the distance from a point to plane (defined by a face)
- C3DFaceList::GetDistanceToFace to retrieve the distance from a point to a face
- CHashTable / CHashMap can now have specific hash methods.
- New Log feature, to be able to trace the internal operation and timing (cf. SetLogFile in ApplicationTools.h)
- OMPSetMaxThreadCount allows to tweak parallel computation by allowing or limiting the available number of core to use.
Changes in API
- CFace::SetSize() now returns a pointer to indexes which is more convenient and avoid the call to CFace::GetData after defining the face size.
- CFace::RemoveAll() is obsolete. Use CFace::SetSize(0) instead.
- C3DFace::GetNormal now return true or false in case the normal cannot be computed.
- Class CIntCoordMap has been renamed C3DPointGridMap
- Class IntCoord is obsolete, use C3DPointI instead
- C3DFaceList::GetTriangularCount is obsolete, use CFaceList::IsTriangular instead
Dependent platform changes
- Linux: now supporting parallel processing of mesh optimization (using OpenMP)
- MacOS: SDK is now compiled with XCode 9.1
Improvements / fixes
- Global performance improvements on many internal operations (triangulation, scene copy, data access)
- Improving multithreaded optimization on Windows.
- CMultiresolutionObject::SetObjectRatio now supports OPTIMIZE_USE_PREDICTIVE_RATIO flag to define automatically a ratio given the mesh topology.
- FBX: import performance improvements, better UV import, keep transformation pivots
- C4D: better transparency support
- LWO/LWS: fix crash on specific materials. Correctly import object in scene when the lwo file has several meshes in the layer.
- STL: point are automatically weld after loading a file.
- Collada: fix face orientation problem when file contains TriStrip. Fix different minor problems.
- Wavefront: format spécification improvements ('o' tag is now supported, multiple 'g' names support, no more limitation in name length, no default material by default...)
- LXO: improved material importation, faces / materials association improved, fix a bug related to file update that sometime prevent to open the exported file in modo.
- Sketchup: material files are not extracted any more when this is not needed.
- DynamicOptimizationSample has been improved and offers new options.
SDK V4600 - June 2017
- Optimization: new OPTIMIZE_USE_PREDICTIVE_RATIO flag to compute predictive ratio in static optimization process.
- Computation of element to remove in C3DExtObject::Optimize is now performed using GetInitialRemovablePointsNumber / GetInitialRemovableFacesNumber
- C4D: fix crash when no scale defined
- CCustomData performance improvements and fix when exchanging strings from PC to MacOS
- Server socket closes connection in a smarter way
SDK V4570 - May 2017
- FBX : embeded folder are not extracted in tmp directory and deleted when scene release
- FBX : option to choose the extracted media
- FBX : update materials in update mode - Sketchup : scale not always correctly taken into account
- Sketchup : materials not always correctly assigned, particularly in case of inheritance
- Move texture : incorrect if not slash terminated
- XArchive : better conversion from Win (wchar_t 2 bytes) to Mac (wchar_t 4 bytes).
- XSocket : send idle message to test connection from client to server
- Preferences files are not saved any by default. This can be turned on using EnablePreferencesSaving
SDK V4560 - May 2017
- Correct a bug in concatenate
- Import / Export FBX cameras
- Import / Export Collada cameras
- Fix headers for easier UE4 usage of the SDK
- MacOS: restore call to libfbxsdk.dyLib as the static lib generate an incompatibility with UE4. The lib can be optionnaly distributed.
- FBX: include SDK V2018.1.1
SDK V4520 - Apr 2017
- Linux version of the SDK is now available as static libraries for both C++11 and C++98. Using -fPIC for compilation with shared libraries.
- Windows: x86 libraries are not any more available
- I/O features are now located in a separate dll / dyLib (PolygonCruncherSDKIO.moox)
- MacOS: not any more dependencies to libfbxsdk.dyLib
- MacOS: Sketchup framework can or cannot be provided with your application.If not provided Sketchup is simply unavailable.
- Improved camera support: import from Collada, FBX, Sketchup...
SDK V4360 - Mar 2017
- Improve C3DScene::Concatenate
- Add CXSocket and CDynExchangeSocket for MacOS build
- Make header / implementation file case consistency
SDK V4350 - Mar 2017
- Add CXSocket and CDynExchangeSocket class which allows transmittion of 3D data between different process. This class is intend to replace CDynExchangeWindow.
- CCustomMemFile modified(use CXMemFile allocation methods).
- CXMemFile attach allows to prevent memory block deletion at object destruction
SDK V4300 - Feb 2017
- C3DGeomObject::Weld3DPoints has been improved and speed multiplied by 40 on large objects.
- Lxo import: bad channel ID assignement might results in optimization crash and other minor fixes.
- Lwo import: clipping channels are now supported.
- Adding new hashing function for specific purpose
- C3DScene::RemoveNode fix when using it in a C3DNodePos loop with NODEPOS_BRANCH_ONLY flag.
- GetChecksum fix: checksum computation lead to same value for different meshes.
- XThread improvements making easier to BeginThread using CXRuntimeClass with user parameter and to know if thread is terminated.
SDK V4280 - Feb 2017
- Improvements in exception mechanism
- C3DBaseObject::GetChecksum gives the ability to know mesh changes.
- C3DGeomObject::Weld method signature changed.
- C3DVector correction
- CCustomData::Serialize is virtual
SDK V4270 - Jan 2017
- Sketchup: material improvements (Remove diffuse color modulation. Backface material were not handled when there is no texture.)
- Class CTree / CTreeNode are not accessible any more from C3DScene / C3DSceneNode to avoid confusion
- Add CCustomData::GetTime, CCustomData::SetTime
- CCustomData::GetArray must be balanced with CCustomData::ReleaseArray
SDK V4260 - Jan 2017
- FBX: textures with special characters are not correctly exported.
-
WRL: UV import correction. UV might be wrong on specific files.
- Import: deeper index bound check prevent some crash when reading specific invalid files.
- Add an option to force ansi characters in texture filenames (only when copy texture is used during exportation)
- Windows: improves SDKSimpleExe. A preprocessing directive shows optimization on a imported file instead of a capsule.
- C3DScene::ReplaceNode, C3DScene::RemoveMaterial, C3DScene::RemoveAll, C3DMaterials::RemoveMaterial new methods
- Hide copy operator for C3DBaseObject
- Scene serialisation changed. Material custom data is now exported.
- CDynExchangeWindow improved.
- CustomData class performance improvements. Content can be dump to a string.
SDK V4250 - Oct 2016
- Windows: Fix an intellisense problem with VS2015 SP3
- Windows: modify the license system to simplify trial usage
- Windows: fix some linking problems that might occurs dependending on the usage context
SDK V4200 - Oct 2016
- Build with FBX 2017.0.1
- Build with Cinema4D 16.0_174378
-
Windows: optimization is now multithreaded computed.
-
Windows: JT file support is automatically provided as long as client application provides JT Siemens Open Toolkit.
JT support requires to be licensor of this toolkit.
- Windows: Update SDKSimpleExe sample, showing MagicCruncher usage.
- Windows SDK is now provided as a DLL.
- Windows: fix a problem with CXThread
- MacOS libraries including all 3D formats excepting XSI, VRML1, VRML2 and DirectX
SDK V4100 - Sept 2016
- MacOS libraries (beta), including all 3D formats excepting XSI, VRML1, VRML2 and DirectX
SDK V4000 - Jul 2016
- MacOS libraries (Alpha)
- Including Polygon Cruncher 11 algorithm
SDK V3950 - Mar 2016
- Make FBX 2016 exports in 2014 format
- FBX now handles Autodesk Asset when importing
SDK V3940 - Jan 2016
SDK V3930 - Dec 2015
- Upgrade to FBX SDK 2016.1.2. Correct orientation problems in FBX import
- Correct crash in C3DSceneNode::GetNodeLocalTM with root
- Correct DisconnectBorderFaces that does not take CSpecNormal channel into account by default.
SDK V3920 - Dec 2015
- Improves STL support (export vertex colors)
- Improves FBX import (import NURBS surface)
- Improves PolygonCruncher batch module call mechanism
SDK V3910 - Sep 2015
- FBX 2016 support
- FBX has been improved (index range checking)
- Cinema 4D now uses melange 2015 library
SDK V3900 - Feb 2015
- Sketchup 2015 support
- Correct a bug in GetFirstNode/GetNextNode when NODEPOS_INCLUDE_NODE set and node has no childs
- Add multi parser for DXF (first is FBX, then our old parser)
- C4D: better instantiation support (instance of a whole group)
- C4D: some part of the hierarchy might be missing (child of an instance)
-
C4D: better handling of the shown/hidden objects
-
C4D: update mode has been corrected
-
DXF: cannot save in DXF
-
OBJ: now exports the d settings in material (removing the transparency of files in 3ds Max)
-
Bad cleaning operation in CMultiresolutionObject leading to a crash when optimizing particular file with strange face that are incorrectly triangulated.
-
Correct bug in C3DScene::InitExport (operation are not always performed on the scene copy)
-
Add MemoryStats function
SDK V3860 - Sept 2014
-
C4D: upgrade melange SDK and add support to whole C4D branch instanciation
-
Set default strings when SDKPolygonCruncher.rc file is missing
SDK V3850 - May 2014
-
FBX: handle password when reading a file
-
Skp: handle complex face
SDK V3800 - May 2014
-
C4D improvements
-
Collada improvements (support 3ds Max URI which does not follow URI specs)
-
Add SCENE_IMPORT_GENERATE_UV to generate automatically UV for planar / spherical / cubic... projection map
SDK V3750 - May 2014
-
C4D improvements
-
Collada improvements (support space into ID)
-
Fix: bug that might occurs when no channel is available
SDK V3650 - Apr 2014
-
FBX: now support correctly UTF8 filenames
-
LXO: improve exports and correctly orient faces during import/export
-
SKP: writer is now available (update writer to Sketchup SDK 2014)
SDK V3600 - Mar 2014
-
3DS: transformation correction (exportationà
-
LXO: import improvements
-
DXF: import/export improvements
-
SKP: now using Sketchup SDK 2014 libraries
-
DAE: a bug occurs when trying to export FACE_NORMAL_CHANNEL
-
DAE: now correctly exports several UVs/VCs/Normal sets
-
DAE: imports might crash on particular files (bad parenthesis in GetFacesPrimitive)
-
LWO: lightwave surface crashes on particular circumstances
- Adding InitMootoolsApplication to simplify SDK initialization
- Preferencess are now automatically initialized
- Correct a bug in GlobalizeChannels (crash on mesh that have both uv and vc with the same ChannelID)
- Weld3DPoints now works for curves
- It is now possible to add a particular texture paths to a scene and MaterialMap takes care of this scene texture paths
- CDependentChannels now requires the type of channel needed in each function as ChannelID can be shared by different kind of channels
SDK V3520 - Feb 2014
-
C4D now appears in the import/export list
-
Bug fix in C3DNodePos::SetFilter (Concatenate)
-
Adding Create() member in some 3D structures
-
Adding InitMootoolsApplication to simplify SDK initialization
SDK V3500 - Feb 2014
-
DAE: improving transparency support
-
FBX: improving transparency and bump support
-
FBX: removing loading plugins which can causes crashes
-
SKP: improving performances and instance handling
-
Add C3DScene::ConcatenateByMaterials method
-
Improve performance in face initialisation
-
Change C3DScene::CreateObjectInstance parameters for performance consideration
-
Add DisableMemoryLeaksChecking to stop tracing memory blocks
SDK V3400DK V3400 - Jan 2014
- ConcatenateObject has been improved and now allows concatenation using a filter, making possible a concatenation by material or other properties.
- FBX can embed media if option specified.
- DAE does not longer create extra materials.
- Find Material by property performance has been improved
- Bump mapping has been added to material properties.
- FBX can import/export bump mapping.
- HashMaterial has been rename to CMaterialHashMap
- CHashExMap class has been renamed to CHashAssocMap
SDK V3300 - Jan 2014
- Object instanciation has been simplifieded
- C3DScene implements GetScale/SetScale to get information on scale
- SKP/FBX/DAE now supports scale information
- FBX update mode is working properly
- FBX minor bug corrections
- DAE now handles material transparency
- DAE now handles correctly UTF8 names
- Polygon Cruncher now keeps instanciation
- SKP import supports Sketchup 2013 file format
SDK V3200 - Dec 2013
- New Weld3DPoints algorithm
- FBX beta version
- New possibities for scene traversal.
- Collada now take care of the scene orientation (X_UP, Y_UP, Z_UP)
- Sketchup x64 bits support
- Scene can be sent to optimizer without needing a copy
- Fix: collada update mode fix
- Fix: correct bug in the optimizer that prevent using the non dynamic mode
SDK V3100 - Nov 2013
- Hookable allocation
- Mesh instanciation
- Introducing C3DGeomObject
- Collada / SKP improvements
SDK V3000 - Oct 2013
- SDK does not use MFC any more
- SDK encapsulated in mootools namespace
V2020 - Sep 2013
-
Demo version of the SDK now includes I/O support. The libraries are only
provided in debug mode.
-
Polygon Cruncher now support extra large mesh.
It previously crash when buffer allocation was greater than 4294967295 bytes.
Some tests had been done with success on very huge mesh (16 Mo points / 115 Mo
faces - landspace generated with World Machine, optimized on computer with 256
Go of memory).
- C3DBaseObject::Concatenate has been improved, as it sometimes loses the association between Materials and UV channels and loses front/back face material properties.
- C3DFaceList::SetBackFaceMaterial now supports different front and back materials.
-
Improvements on I/O support:
- VRML97: support / char in the texture paths.
- Collada: imports sometime crash.
- 3DS exportation: texture are renamed to 8.3 dos format when Move Texture to folder is checked in the exportation options
- Sketchup: front / back material are handled in a better way
- Wavefront: long lines might be stripped, resulting in a loading failure